//# sourceURL=http://uMapApp/UI/Panel/Item/FormItem
define([
    "mhjs/mhjs"
], function (
    mhjs
) {

    function FormItem(option) {

        var _this = this;

        _this._list = [];

        _this.ui = _this.ui || {};
        _this.ui.title = new mhjs.Div({"class": "title"});
        _this.ui.subtitle = new mhjs.Div({"class": "subtitle"});
        _this.ui.wrap = new mhjs.Div({"class": "wrap"});


        mhjs.Div.call(_this, option);
        _this.addClass("formItem");

        _this
            .append(_this.ui.title)
            .append(_this.ui.subtitle)
            .append(_this.ui.wrap)
        ;

    }

    var _class = FormItem;
    mhjs.Inherit(_class, mhjs.Div);


    Object.defineProperties(_class.prototype, {
        "list"  : {
            set: function (list) {
                var _this = this;
                _this.clear();
                $.each(list, function (i, item) {
                    _this.add(item);
                });
            },
            get: function () {
                return this._list;
            }
        },
        "add"     : {
            value: function (item) {
                var _this = this;
                _this.list.push(item);
                _this.ui.wrap.append(item);
                return item;
            }
        },
        "title"   : {
            set: function (title) {
                var _this = this;
                _this._title = title;
                _this.ui.title.text(title);
            },
            get: function () {
                return this._title;
            }
        },
        "subtitle": {
            set: function (subtitle) {
                var _this = this;
                _this._subtitle = subtitle;
                _this.ui.subtitle.text(subtitle);
            },
            get: function () {
                return this._subtitle;
            }
        },
        "clear"   : {
            value: function () {
                var _this = this;
                _this.ui.wrap.empty();
                _this._content = undefined;
            }
        }
    });

    return _class;

});